#插入排序使用双重for循环，的外层循环标识当前最小的元素位置，即有序序列的末尾元素，内层循环用于在无序序列中查找最小值，并在循环结束后交换最小值和有序序列的末尾元素
def selectSort(list):
    if len(list)<=1:
        return list
    for i in range(len(list)):
        min_idx = i
        for j in range(i+1,len(list)):
            if list[j] < list[min_idx]:
                min_idx = j
        list[min_idx],list[i] = list[i],list[min_idx]
    return list
print(selectSort([8,3,5,2,6,1,7]))
# def select_sort(lst):
#     # 创建输入列表的副本以避免修改原始数据
#     lst = lst[:]
#     n = len(lst)
#     for i in range(n):
#         min_idx = i
#         for j in range(i + 1, n):
#             if lst[j] < lst[min_idx]:
#                 min_idx = j
#         lst[i], lst[min_idx] = lst[min_idx], lst[i]
#     return lst
#
#
# print(select_sort([8, 3, 5, 2, 6, 1, 7]))
